﻿using System.Collections.Generic;
using System.Linq;
using WpfDryIocDemo.Models;

namespace WpfDryIocDemo.Repositories
{
    public class UserRepository : IUserRepository
    {
        // 模拟数据库（内存集合）
        private readonly List<User> _users = new List<User>
        {
            new User
            {
                Id = 1,
                Name = "张三",
                Age = 25,
            },
            new User
            {
                Id = 2,
                Name = "李四",
                Age = 30,
            },
            new User
            {
                Id = 3,
                Name = "王五",
                Age = 28,
            },
        };

        // 查询所有
        public List<User> GetAll() => _users.ToList();

        // 根据ID查询
        public User GetById(int id) => _users.FirstOrDefault(u => u.Id == id);

        // 新增（ID自增）
        public void Add(User user)
        {
            user.Id = _users.Max(u => u.Id) + 1;
            _users.Add(user);
        }

        // 修改（存在则更新，返回是否成功）
        public bool Update(User user)
        {
            var existing = GetById(user.Id);
            if (existing == null)
                return false;

            existing.Name = user.Name;
            existing.Age = user.Age;
            return true;
        }

        // 删除（存在则删除，返回是否成功）
        public bool Delete(int id)
        {
            var user = GetById(id);
            if (user == null)
                return false;

            _users.Remove(user);
            return true;
        }
    }
}
